import {PageQuery} from "@/model/index";

export interface Msg {
    /**
     * 编号
     */
    id: number;
    /**
     * 房间号(发出ID_接收ID)
     */
    roomId: string;

    /**
     * 发出用户id
     */
    fromUid: number;

    /**
     * 目标用户id
     */
    toUid: number;

    /**
     * 类型(1文本 2图片 3视频)
     */
    msgType: number;

    /**
     * 内容
     */
    content: string;

    /**
     * 状态(1已读 2未读)
     */
    status: number;

    /**
     * 添加时间
     */
    createTime: string;

    /**
     * 查看时间
     */
    updateTime: string;
}

export interface GroupMsg {
    /**
     * 编号
     */
    id: number;

    /**
     * 群id
     */
    groupId: number;

    /**
     * 用户id
     */
    userId: number;

    /**
     * 类型(0系统 1文本 2图片 3视频 4文件)
     */
    msgType: number;

    /**
     * 消息内容
     */
    content: string;

    /**
     * 添加时间
     */
    createTime: string;

    /**
     * 更新时间
     */
    updateTime: string;
}

export interface Request {

    /**
     * 编号
     */
    id: number;

    /**
     * 房间号(发出ID_接收ID)
     */
    roomId: string;

    /**
     * 群id
     */
    groupId: number;

    /**
     * 请求用户id
     */
    fromUid: number;

    /**
     * 目标用户id
     */
    toUid: number;

    /**
     * 请求类型(1好友 2群聊)
     */
    type: number;

    /**
     * 请求状态(1通过 2拒绝 3申请中)
     */
    requestStatus: number;

    /**
     * 查看状态(1已查看 2未查看)
     */
    lookStatus: number;

    /**
     * 请求理由
     */
    remark: string;

    /**
     * 添加时间
     */
    createTime: string;

    /**
     * 查看时间
     */
    updateTime: string;
}

export interface Extend {

    /**
     * 用户id
     */
    userId: number;

    /**
     * 房间号
     */
    roomId: string;

    /**
     * 好友备注
     */
    friendRemark: string;

    /**
     * 群聊处理类型(quit退出 delete删除)
     */
    groupDealType: string;

    /**
     * 群id
     */
    groupId: number;

    /**
     * 转发类别(apply申请 reply回复 offer通知 answer回答 hangup挂起 ice链接)
     */
    forwardType: string;
}

export interface DataContent {

    /**
     * 动作类型
     */
    action: number;

    /**
     * 用户的聊天内容
     */
    chatMsg: Msg;

    /**
     * 群聊天内容
     */
    chatGroupMsg: GroupMsg;

    /**
     * 请求内容
     */
    chatRequest: Request;

    /**
     * 扩展内容
     */
    extend: Extend;
}

/**
 * 会话数据
 */
export interface ConversationData extends PageQuery{
    /**
     * 会话类型(1单聊 2群聊)
     */
    type: number;
    /**
     * 名称
     */
    name: string;
    /**
     * 图像
     */
    img: string;
    /**
     * 唯一标记(friendId或groupId)
     */
    uniqueMark: number;
    /**
     * 单聊消息列表
     */
    singleMsgList?: Msg[];
    /**
     * 群聊消息列表
     */
    groupMsgList?: GroupMsg[];
}